package com.jz.community.moduleshoppingguide.nearshop.net;

import com.jz.community.basecomm.bean.BaseResponseInfo;
import com.jz.community.basecomm.bean.baseGoods.BaseGoodsInfo;
import com.jz.community.basecomm.constant.Constant;
import com.jz.community.moduleshoppingguide.nearshop.bean.CategoriesBean;
import com.jz.community.moduleshoppingguide.nearshop.bean.FloorGoodsInfoesBean;
import com.jz.community.moduleshoppingguide.nearshop.bean.NearShopCategoryBean;
import com.jz.community.moduleshoppingguide.nearshop.bean.ShopDownStairsBean;
import com.jz.community.moduleshoppingguide.nearshop.bean.ShopInfoBean;

import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface NearShopNetApi {

    @GET(Constant.CATEGORIES)
    Observable<CategoriesBean> showShopCategorys(@Query("filter") String filter);

    @GET(Constant.SHOP_DOWN_STAIRS)
    Observable<ShopDownStairsBean> showShopDownStairs(@Query("page") int page, @Query("size") int size,
                                                      @Query("longitude") String longitude, @Query("latitude") String latitude,
                                                      @Query("message") String message, @Query("mainBusinessId") String mainBusinessId,
                                                      @Query("limitDistance") String limitDistance,
                                                      @Query("sort") int sort);

    @GET(Constant.FLOOR_GOODS_INFOES)
    Observable<FloorGoodsInfoesBean> floorGoodsInfoes(@Query("shopId") String shopId, @Query("title") String title);

    @GET(Constant.NEARSHOP_INFOES + "/{shop-id}")
    Observable<ShopInfoBean> nearShopInfoes(@Path("shop-id") String shopId);

    @GET(Constant.FLOOR_CATEGORY_SQRS)
    Observable<List<NearShopCategoryBean>> nearShopCategory(@Query("shopId") String shopId);

    @GET(Constant.SHOW_GOODS_INFOES)
    Observable<BaseGoodsInfo> getNearShopGoods(@Query("page") int page, @Query("size") int size, @Query("filter") String filter);

    @DELETE(Constant.GOODS_CART_URL)
    Observable<BaseResponseInfo> getDeleteCartGoods(@Query("cartIds") Long[] ids);

}
